home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / packet / terminal / top_152 / src152.exe / rar / TOPMAKRO.PAS < prev    next >
Pascal/Delphi Source File  |  1995-05-16  |  5KB  |  152 lines

  1. {┌─────────────────────────────────────────────────────────────────────────┐}
  2. {│                                                                         │}
  3. {│                              T. O. P.                                   │}
  4. {│                                                                         │}
  5. {│                        (T)he  (O)ther  (P)acket                         │}
  6. {│                                                                         │}
  7. {│ T O P M A K R O . P A S                                                 │}
  8. {│                                                                         │}
  9. {│                                                                         │}
  10. {│ Routinen für die Abarbeitung der Makrofunktionen.                       │}
  11. {└─────────────────────────────────────────────────────────────────────────┘}
  12.  
  13.  
  14. Procedure MakroZeile_holen;
  15. Var   w : Word;
  16. Begin
  17.   if ResetTxt(G^.MakroFile) = 0 then
  18.   begin
  19.     for w := 1 to G^.MakroZaehl do Readln(G^.MakroFile);
  20.     if not Eof(G^.MakroFile) then
  21.     begin
  22.       Readln(G^.MakroFile,G^.MakroZeile);
  23.       KillEndBlanks(G^.MakroZeile);
  24.       inc(G^.MakroZaehl);
  25.       G^.MakroFileEnd := Eof(G^.MakroFile);
  26.     end else MakroInit;
  27.     FiResult := CloseTxt(G^.MakroFile);
  28.   end else MakroInit;
  29. End;
  30.  
  31.  
  32. Procedure Makro_aktivieren (* Zeile : Str60 *);
  33. Begin
  34.   if pos(BS,Zeile) = 0 then Zeile := G^.MakroPfad + Zeile;
  35.   if pos(Pkt,Zeile) = 0 then Zeile := Zeile + KeyExt;
  36.   Assign(G^.MakroFile,Zeile);
  37.   if ResetTxt(G^.MakroFile) = 0 then
  38.   begin
  39.     FiResult := CloseTxt(G^.MakroFile);
  40.     G^.Makro := true;
  41.     G^.MakroZeile := '';
  42.   end else
  43.   begin
  44.     MakroInit;
  45.     InfoOut(show,1,1,InfoZeile(27) + B1 + Zeile);
  46.   end;
  47. End;
  48.  
  49.  
  50. Procedure MakroInit;
  51. Begin
  52.   G^.MakroZeile := '';
  53.   G^.Makro := false;
  54.   G^.MakroFileEnd := false;
  55.   G^.MakroZaehl := 0;
  56. End;
  57.  
  58.  
  59. Procedure Makro_Erlernen (* SK : Sondertaste; VC : Char *);
  60. Begin
  61.   if not(KeyCheck and (SK = _Alt3)) then
  62.   begin
  63.     if SK = _Andere then
  64.     begin
  65.       if not G^.MakroReturn then Writeln(G^.MakroFile);
  66.       G^.MakroReturn := true;
  67.       if VC in [^A..^Z] then
  68.       begin
  69.         Writeln(G^.MakroFile,S_ch + B1 + CTRL + chr(ord(VC)+64));
  70.         G^.MakroZeile := '';
  71.       end else G^.MakroZeile := G^.MakroZeile + VC;
  72.     end else
  73.     begin
  74.       if not G^.MakroReturn then Writeln(G^.MakroFile);
  75.       G^.MakroReturn := true;
  76.       if G^.MakroZeile > '' then
  77.       begin
  78.         if not G^.MakroReturn then Writeln(G^.MakroFile);
  79.         Writeln(G^.MakroFile,G^.MakroZeile);
  80.         G^.MakroZeile := '';
  81.         G^.MakroReturn := true;
  82.       end;
  83.       Writeln(G^.MakroFile,'* ',Key[SK].Ta);
  84.     end;
  85.   end;
  86. End;
  87.  
  88.  
  89. Procedure Makro_Open_LearnFile;
  90. var     Hstr : String[80];
  91.         KC   : Sondertaste;
  92.         VC   : Char;
  93.         Flag : Boolean;
  94.         i    : Byte;
  95. Begin
  96.   if not G^.MakroLearn then
  97.   begin
  98.     Flag := false;
  99.     Hstr := G^.MakroPfad + MakDatei + KeyExt;
  100.     G^.Fstr[7] := InfoZeile(187);
  101.     G^.Fstr[10] := B1 + InfoZeile(168);
  102.     Fenster;
  103.     GetString(Hstr,Attrib[3],60,2,14,KC,2,Ins);
  104.     if KC <> _Esc then
  105.     begin
  106.       Assign(G^.MakroFile,Hstr);
  107.       if ResetTxt(G^.MakroFile) = 0 then
  108.       begin
  109.         FiResult := CloseTxt(G^.MakroFile);
  110.         for i := 9 to 15 do G^.Fstr[i] := '';
  111.         G^.Fstr[11] := B1 + Hstr + DP + InfoZeile(156);
  112.         G^.Fstr[13] := B1 + InfoZeile(188);
  113.         Fenster;
  114.         SetzeCursor(length(G^.Fstr[13]) + 1,13);
  115.         Alarm;
  116.         _ReadKey(KC,VC);
  117.         Cursor_aus;
  118.         VC := UpCase(VC);
  119.         if (VC in YesMenge) or (KC = _Ret) then
  120.         begin
  121.           if RewriteTxt(G^.MakroFile) = 0 then Flag := true
  122.                                           else Triller;
  123.         end else if KC <> _Esc then
  124.         begin
  125.           if AppendTxt(G^.MakroFile) = 0 then Flag := true
  126.                                          else Triller;
  127.         end;
  128.       end else
  129.       begin
  130.         if RewriteTxt(G^.MakroFile) = 0 then Flag := true
  131.                                         else Triller;
  132.       end;
  133.  
  134.       if Flag then
  135.       begin
  136.         G^.MakroZeile := '';
  137.         G^.MakroLearn := true;
  138.         G^.MakroReturn := true;
  139.       end;
  140.     end;
  141.   end else
  142.   begin
  143.     G^.MakroLearn := false;
  144.     if G^.MakroZeile > '' then Writeln(G^.MakroFile,G^.MakroZeile);
  145.     FiResult := CloseTxt(G^.MakroFile);
  146.     G^.MakroZeile := '';
  147.   end;
  148.   ClrFenster;
  149.   SetzeFlags(show);
  150.   Neu_Bild;
  151. End;
  152.